1. Introducción a AWS Elastic Beanstalk

AWS Elastic Beanstalk es un servicio administrado que permite desplegar aplicaciones web automáticamente sin configurar manualmente toda la infraestructura.

El objetivo principal es simplificar el despliegue de aplicaciones.

Qué hace Elastic Beanstalk

  • Crea servidores EC2
  • Configura balanceadores
  • Gestiona Auto Scaling
  • Configura monitoreo
  • Despliega aplicaciones

Idea principal

Subes código
↓
Elastic Beanstalk crea infraestructura
↓
Aplicación funcionando
Elastic Beanstalk permite centrarse en programar sin perder completamente el control de AWS.

Mini-test

¿Qué hace Elastic Beanstalk?

Desplegar aplicaciones automáticamente
Crear únicamente buckets S3
Gestionar DNS exclusivamente
Crear usuarios IAM

2. Qué administra AWS y qué administras tú

AWS administra

  • Infraestructura física
  • Servidores EC2
  • Sistema operativo
  • Balanceadores
  • Auto Scaling
  • Parches básicos

Tú administras

  • Código aplicación
  • Configuración aplicación
  • Variables entorno
  • Lógica backend
Tarea Responsable
Infraestructura AWS
Aplicación Desarrollador
Elastic Beanstalk NO elimina completamente la administración; simplemente automatiza gran parte.

Mini-test

¿Quién administra el código de la aplicación?

El desarrollador
CloudFront
IAM
S3 automáticamente

3. Arquitectura interna de Elastic Beanstalk

Cuando desplegamos una aplicación, Elastic Beanstalk crea automáticamente múltiples servicios AWS.

Infraestructura típica

Usuario
↓
Load Balancer
↓
EC2 Auto Scaling
↓
Aplicación

Servicios usados internamente

  • EC2
  • Auto Scaling
  • CloudWatch
  • Elastic Load Balancer
  • S3

Importante

Elastic Beanstalk NO reemplaza EC2.

Simplemente automatiza su administración.

Si miramos la consola EC2 veremos servidores creados automáticamente por Beanstalk.

Mini-test

¿Qué servicio crea automáticamente Elastic Beanstalk?

EC2
Route 53 obligatorio
RDS siempre
VPN física

4. EC2 manual vs Elastic Beanstalk

EC2 Manual Elastic Beanstalk
Configuras servidores Automático
Despliegue manual Despliegue automático
Escalado manual Auto Scaling
Más control Más simplicidad

Ventaja EC2

Control total sobre el entorno.

Ventaja Beanstalk

Despliegue muchísimo más rápido.

Beanstalk simplifica operaciones pero reduce parte del control fino.

Mini-test

¿Qué ventaja principal tiene Beanstalk?

Automatización
Eliminar programación
Eliminar internet
No usar EC2

5. Lenguajes soportados

Elastic Beanstalk soporta múltiples tecnologías modernas.

  • Node.js
  • Python
  • Java
  • PHP
  • .NET
  • Ruby
  • Docker
  • Go

Servidores web utilizados

  • NGINX
  • Apache
  • IIS
  • Puma
Elastic Beanstalk configura automáticamente el entorno según el lenguaje elegido.

Mini-test

¿Qué tecnología soporta Elastic Beanstalk?

Node.js
Solo Java
Solo Python
Ningún backend

6. Node.js explicado desde cero

Node.js es un entorno que permite ejecutar JavaScript fuera del navegador.

Normalmente JavaScript se ejecuta en páginas web dentro del navegador del usuario.

Con Node.js

JavaScript puede ejecutarse como backend en servidores.

Ejemplo sencillo

const http = require('http');

const server = http.createServer((req, res) => {

    res.write('Hola desde Node.js');
    res.end();

});

server.listen(3000);

Qué hace este código

  • Crea servidor web
  • Escucha peticiones HTTP
  • Devuelve texto

Explicación línea por línea

require('http')

Carga el módulo HTTP integrado.

createServer()

Crea servidor web.

req

Representa la petición del usuario.

res

Representa la respuesta que enviamos.

listen(3000)

Hace que el servidor escuche en el puerto 3000.

Qué hace Elastic Beanstalk con Node.js

Beanstalk detecta automáticamente la aplicación Node.js, instala dependencias y ejecuta el servidor.

Node.js es extremadamente usado en APIs modernas y aplicaciones tiempo real.
Node.js NO es un lenguaje nuevo; sigue siendo JavaScript.

Mini-test

¿Qué permite Node.js?

Ejecutar JavaScript en servidores
Crear discos SSD
Crear VPCs
Gestionar DNS

7. Crear una aplicación en Elastic Beanstalk

Paso 1

Entrar al servicio Elastic Beanstalk.

Paso 2

Seleccionar “Create Application”.

Paso 3

Nombre aplicación:
mi-app

Paso 4

Elegir plataforma:

Node.js

Paso 5

Subir código ZIP.

Paso 6

Beanstalk crea automáticamente toda la infraestructura.

El despliegue inicial puede tardar varios minutos porque AWS crea recursos automáticamente.

Mini-test

¿Qué formato suele subirse?

ZIP
ISO
EXE
PDF

8. Despliegue automático

Beanstalk automatiza completamente el deployment.

Qué ocurre automáticamente

  • Subida código
  • Instalación dependencias
  • Reinicio aplicación
  • Configuración servidor web

Ejemplo Node.js

package.json

Este archivo define dependencias del proyecto.

{
  "name":"app",
  "dependencies":{
    "express":"^4.18.0"
  }
}

Beanstalk ejecuta automáticamente:

npm install
Sin package.json muchas aplicaciones Node.js fallarán.

Mini-test

¿Qué archivo usa Node.js para dependencias?

package.json
index.html
vpc.yaml
main.exe

9. Escalado automático

Elastic Beanstalk puede aumentar o reducir servidores automáticamente.

Funcionamiento

Mucho tráfico
↓
Auto Scaling crea EC2 nuevas

Ventajas

  • Mayor disponibilidad
  • Adaptación automática
  • Menor intervención manual

Escalado horizontal

Se añaden más servidores.

Escalado vertical

Se aumenta potencia servidor.

Auto Scaling es fundamental en aplicaciones con tráfico variable.

Mini-test

¿Qué hace Auto Scaling?

Crear o eliminar servidores automáticamente
Crear buckets S3
Gestionar DNS
Crear snapshots manuales

10. Balanceador de carga

El balanceador distribuye tráfico entre múltiples servidores.

Objetivo

  • Evitar saturación
  • Mayor disponibilidad
  • Distribución tráfico

Funcionamiento

Usuarios
↓
Load Balancer
↙     ↘
EC2   EC2
Sin balanceador, todo el tráfico llegaría a un único servidor.

Mini-test

¿Qué hace un Load Balancer?

Distribuir tráfico
Crear DNS
Instalar Linux
Cifrar discos

11. Logs y monitoreo

Elastic Beanstalk utiliza CloudWatch para monitorización.

Información disponible

  • CPU
  • Memoria
  • Errores aplicación
  • Logs servidor
  • Tiempo respuesta

Logs Node.js

console.log("Servidor iniciado");

Este mensaje aparecerá en logs CloudWatch.

Los logs son fundamentales para depurar errores en producción.

Mini-test

¿Qué servicio monitoriza Elastic Beanstalk?

CloudWatch
Route 53
IAM
EBS

12. Variables de entorno

Las variables de entorno permiten almacenar configuración sin modificar código.

Ejemplos

  • Contraseñas
  • URLs APIs
  • Puertos
  • Claves acceso

Ejemplo Node.js

const puerto = process.env.PORT;

Beanstalk suele definir automáticamente el puerto correcto.

Nunca guardes contraseñas directamente dentro del código fuente.

Mini-test

¿Dónde deben guardarse contraseñas?

Variables entorno
Código visible
HTML público
Comentarios JS

13. Ventajas, desventajas y costes

Ventajas

  • Despliegue rápido
  • Escalado automático
  • Integración AWS
  • Poca administración

Desventajas

  • Menos control
  • Más difícil optimización avanzada
  • Infraestructura parcialmente oculta

Costes

Elastic Beanstalk en sí no suele cobrarse directamente.

Pagamos por los recursos utilizados:

  • EC2
  • Load Balancer
  • S3
  • Transferencia datos
Muchos alumnos creen que Beanstalk reemplaza costes EC2; realmente sigue usando recursos AWS normales.

Mini-test

¿Qué recursos generan costes?

EC2 y Load Balancer
Solo Beanstalk
Solo Node.js
Solo IAM

14. Arquitectura moderna con Beanstalk

Ejemplo completo

Usuarios
↓
CloudFront
↓
Load Balancer
↓
Elastic Beanstalk
↓
EC2 Auto Scaling
↓
RDS

Ventajas arquitectura

  • Escalable
  • Alta disponibilidad
  • Automatizada
  • Integrada AWS

Conclusión importante

Elastic Beanstalk simplifica muchísimo despliegues web modernos sin obligar al desarrollador a administrar manualmente toda la infraestructura.

Beanstalk es muy útil para aprender cloud antes de pasar a arquitecturas más avanzadas como Kubernetes o ECS.
Beanstalk NO es serverless puro como Lambda porque sigue utilizando EC2 detrás.

Mini-test

¿Qué utiliza internamente Elastic Beanstalk?

EC2
Solo Lambda
Solo S3
Solo DNS